Point to Point Protocol (PPP) multiplexing and demultiplexing permits more efficient utilization of slow speed links, such as a T1 Wide Area Network (WAN) interface. A main processor and co-processor may be implemented so that a co-processor performs a multiplexing function on outbound data packets and a demultiplexing function on inbound data packets. One inherent problem with the co-processor assisted multiplexing scheme is that data packets are decoupled from the packet switch path of the main processor. The data packets are then reinserted back into the main routing path at a later time. Saving and restoring the context of the original packet is critical for managing Quality of Service (QoS), routing data packets appropriately, and maintaining network statistics.
One attempt to avoid the loss of context is to enqueue the packet context and interface context handles, generate a correlator, and pass the correlator to the co-processor. However, this involves a significant amount of processor overhead to accomplish, which may not be acceptable for the time-critical packet switching code path. Therefore, it is desirable to pass context information between the processor and the co-processor in a manner by efficiently using memory and processor resources.